<?php

/**
 * @author PeoneEr
 * @package aion personal cabinet v1.0
 * @copyright Aion Factory Inc. 2010-2011
 * @license GNU v3
 * @link Ai-Factory.ru && http://code.google.com/p/aionprivateofficev2
 */
class Main_Controller {

    private static $_instance = NULL;
    public $_lang = NULL;

    public static function getInstance() {
        if (is_null(self::$_instance)) {
            $class = __CLASS__;
            self::$_instance = new $class();
        }

        return self::$_instance;
    }

    public function debug($var) {
        /**
         *  Функция дебага
         * @param string $var
         */
        echo "<pre>";
        var_dump($var);
        echo "</pre>";
    }

    public function getLanguage() {
        /**
         * подгрузка объекта языка для использования
         * @param array $_SESSION
         * @return object $lang
         */
        if (isset($_SESSION['name'])) {
            switch ($_SESSION['language']) {
                case 'ru_RU': require_once "core/languages/ru_RU.php";
                    $this->_lang = new RussianLanguage();
                    break;
                case 'en_EN':
                    require_once "core/languages/en_EN.php";
                    $this->_lang = new EnglishLanguage();
                    break;
                default:
                    require_once "core/languages/ru_RU.php";
                    $this->_lang = new RussianLanguage();
            }
        } else {
            require_once "core/languages/ru_RU.php";
            $this->_lang = new RussianLanguage();
        }
        return $this->_lang;
    }

    public function cryptPassword($password) {
        return base64_encode(sha1($password, true));
    }

    public function alert($string) {
        /**
         *  алерт чего-нибудь 
         * @param mixed $string
         */
        echo "<script language='JavaScript'> alert ('" . $string . "'); </script>";
    }

    public function secure($param) {
        /**
         *  фильтрация переменных
         * @param mixed $param
         * @return secured $param
         */
        return trim(htmlspecialchars(stripslashes($param)));
    }

    public function error404() {
        /**
         *  Замена стандартной 404 функции
         */
        echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0;URL=index?error\">";
        $_SESSION['error'] = 'Вы не авторизированы. Пожалуйста, <a href="index">авторизируйтесь</a>';
        exit();
    }

    public function redirect($time, $page) {
        /**
         *  редирект на страницу
         * @param int $time
         * @param mixed $page
         */
        if (!is_numeric($time) || round($time) < 0) {
            $time = 1;
        }
        echo "<META HTTP-EQUIV='REFRESH' CONTENT='" . $time . ";URL=" . $page . "'>";
    }

    public function echoSuccess($text) {
        /**
         *  вывод удачной инфы
         * @param string $text
         */
        $toEcho = explode("<br />", $text);
        $count = count($toEcho);
        echo "<div id='notify' onclick='hideSuccess(); return false;'>";
        for ($i = 0; $i <= $count; $i++) {
            echo "<br />" . $toEcho[$i];
        }
        echo "</div>";
        unset($toEcho, $i);
    }

    public function echoError($text) {
        /**
         *  вывод ошибки
         * @param string $text
         */
        $toEcho = explode("<br />", $text);
        $count = count($toEcho);
        echo "<div id='errorNotifi' onclick='closeError(); return false;'>";
        for ($i = 0; $i <= $count; $i++) {
            echo "<br />" . $toEcho[$i];
        }
        exit("</div>");
        unset($toEcho, $i);
    }

}

?>
